190 REM DIE TUERME VON HANOI 200 POKE53280,7:POKE53281,7:GOSUB1520 210 POKE53280,6:POKE53281,6 220 T$="[146] [146][164][146][175][146][185][146][162][184][183][163]" 230 B$="[164][175][185][162][146][184][146][183][146][163][146] " 240 DIMTP$(8),T$(8),BT$(8),B$(8),CS$(20) 250 CS$(2)="[144]":CS$(04)="[154]":CS$(06)="" 260 CS$(8)="[159]":CS$(10)="[156]":CS$(12)="" 270 CS$(14)="[149]" 280 FORI=1TO8 290 C$=MID$(T$,2*I,1):C$=C$+C$+C$:C$=C$+C$+C$:C$=LEFT$(C$+C$,14) 300 TP$(I)=MID$(T$,2*I-1,1)+C$ 310 C$=MID$(B$,2*I,1):C$=C$+C$+C$:C$=C$+C$+C$:C$=LEFT$(C$+C$,14) 320 BT$(I)=MID$(B$,2*I-1,1)+C$ 330 NEXTI 340 L$=" [180][161][146][170][146] " 350 R$="[146] [146][180][146][161][170] " 360 DIMLF$(5),RT$(5) 370 FORI=1TO5:LF$(I)=MID$(L$,2*I-1,2):RT$(I)=MID$(R$,2*I-1,2):NEXTI 380 CR$=CHR$(13) 390 PRINT"[147][129]WIEVIEL SCHEIBEN (2 - 7) ? ";:GOSUB 1400 400 IFIN$=""THEN390 410 FORI=1TOLEN(IN$) 420 :T$=MID$(IN$,I,1):IFT$>="0"ANDT$<="9"THEN440 430 PRINT"[145][145][145]":GOTO390 440 NEXTI 450 N=VAL(IN$):IFN>7THENPRINT"[129]NICHT MEHR ALS 7 [145][145][145][145][145][145]":FORY=1TO999:NEXTY:GOTO390 460 IFN<2THENPRINT"[145][145][145]":GOTO390 470 DN$="" 480 RT$="" 490 FORI=1TO3:FORJ=0TO7:P(I,J)=0:NEXTJ:NEXTI 500 PRINT"[147]";DN$;"";:P(1,0)=N 510 FORI=1TO3:PRINT"[129] ";:NEXTI 520 PRINTDN$;"[129]#1#2#3" 530 PRINTDN$;LEFT$("[145][145][145][145][145][145][145]",N); 540 FORI=1TON:PRINTCS$(I*2); 550 PRINTLEFT$("[146]"+RT$,7-I+1);LEFT$("[164]"+BT$(1),2*I+1);"[164]" 560 P(1,N-I+1)=I*2 570 NEXTI 580 MV=0 590 TM=TI+60 600 IFTIP(T,P(T,0))THENPRINT"DAS GEHT NICHT.":GOTO590 700 FC=P(F,0):FW=P(F,FC):TC=P(T,0):TW=P(T,TC):MV=MV+1 710 X=1+13*(F-1)+7-FW/2:PRINT""CS$(FW) 720 PRINT DN$;LEFT$("[145][145][145][145][145][145][145][145][145]",FC+1);LEFT$("[146]"+RT$+RT$+RT$,X); 730 LF$=LEFT$("[157][157][157][157][157][157][157][157][157][157][157][157][157][157]",FW+1) 740 FORI=1TO 8:T$(I)=LEFT$(TP$(I),1+FW):B$(I)=LEFT$(BT$(I),1+FW):NEXTI 750 HT=0:J=1:IFF>TTHENJ=-1 760 FORI=FTOTSTEPJ 770 IFP(I,0)>HTTHENHT=P(I,0) 780 NEXTI 790 IFHT=P(T,0)THENHT=HT+1:GOTO810 800 IFABS(F-T)>1THENIFHT=P(2,0)THENHT=HT+1 810 FORI=FCTOHT 820 :FOR J=1TO8 830 :PRINTT$(J);LF$;B$(J);LF$;"[145][145]"; 840 :NEXTJ 850 :PRINT"[145]"; 860 NEXTI 870 PRINT""; 880 L$=LEFT$("[157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]",1+FW):R$=LEFT$(RT$,FW-1) 890 PRINT"";LEFT$(" ",FW);"[146]";LEFT$("[157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157]",FW); 900 IFF>TTHEN980 910 FORI=F*13TOT*13-1 920 :FORJ=1TO5 930 PRINTLF$(J);R$;RT$(J);L$; 940 NEXTJ 950 PRINT""; 960 NEXTI 970 GOTO1040 980 FORI=T*13TOF*13-1 990 PRINT"[157]"; 1000 :FORJ=5TO1STEP-1 1010 ::PRINTLF$(J);R$;RT$(J);L$; 1020 :NEXTJ 1030 NEXTI 1040 FORI=HT-1TOTCSTEP-1 1050 :FORJ=8TO1STEP-1 1060 :PRINTT$(J);LF$;B$(J);LF$;"[145][145]"; 1070 :NEXTJ 1080 :PRINT""; 1090 NEXTI 1100 PRINTLEFT$("[164]"+BT$(1),FW+1);"[164]" 1110 P(T,0)=P(T,0)+1 1120 P(T,P(T,0))=P(F,P(F,0)) 1130 P(F,0)=P(F,0)-1 1140 IFP(2,0)<>NANDP(3,0)<>NTHEN590 1150 GOSUB1350 1160 PRINT"[144] [172][162][162][162][162][162][162][162][162][162][162][162][162][187]" 1170 PRINT" [161]GESCHAFFT!! [146][161]" 1180 PRINT" [188][162][162][162][162][162][162][162][162][162][162][162][162][146][190]" 1190 PRINT"[158]DU HAST";MV;"SCHRITTE DAZU GEBRAUCHT":PRINT 1200 T=2^N-1:PRINT"[159]AM KUERZESTEN WAEREN"T"SCHRITTE." 1210 PRINT"[156]NOCH EINS? ";:GOSUB1400 1220 IFLEFT$(IN$,1)<>"J"THENEND 1230 RUN 1240 END 1250 PRINTPR$; 1260 GOSUB1400:IFIN$=""THENRETURN 1270 IFLEFT$(IN$,1)="Q"THENEND 1280 IFLEN(IN$)>1THEN1300 1290 IFIN$>="1"ANDIN$<="3"THENRETURN 1300 PRINT"FALSCHE EINGABE !!!" 1310 FORI=1TO500:NEXTI 1320 PRINT"[145] " 1330 PRINT"[145][145]";PR$;LEFT$(" ",LEN(IN$)) 1340 PRINT"[145]";:GOTO1250 1350 PRINT""; 1360 FORI=1TO5:PRINT" ":NEXTI 1370 PRINT""; 1380 RETURN 1390 PRINT"" 1400 IN$=" ":ZT=TI:ZC=2:ZD$=CHR$(20) 1410 GETZ$:IF Z$<>""THEN1440 1420 IFZT<=TITHENPRINTMID$(" [166]",ZC,1);"[157]";:ZC=3-ZC:ZT=TI+15 1430 GOTO1410 1440 Z=ASC(Z$):ZL=LEN(IN$):IF(ZAND127)<32THENPRINT" [157]";:GOTO1480 1450 IFFLAND(ZAND127)>64AND(ZAND127)<91THENZ$=CHR$((Z+128)AND255) 1460 IFZL>254THEN1410 1470 IN$=IN$+Z$:PRINTZ$;ZD$;Z$; 1480 IFZ=13THENIN$=MID$(IN$,2):PRINTCR$;:RETURN 1490 IFZ=20ANDZL>1THENIN$=LEFT$(IN$,ZL-1):PRINT"[157]";:GOTO1410 1500 IFZ=141THENZ$=CHR$(-20*(ZL>1)):FORZ=2TOZL:PRINTZ$;:NEXTZ:GOTO1400 1510 GOTO1410 1520 PRINT"[147]*** [129]COMMODORE 64 *** [129]TUERME V. HANOI ***"CHR$(142)CHR$(8) 1530 PRINT"[144]DU HAST 3 PLATTEN MIT EINER ANZAHL VON" 1540 PRINT" SCHEIBEN. DIE AUFGABE IST,DIE SCHEIBEN" 1550 PRINT" AN EINER ANDEREN STELLE IN GLEICHER" 1560 PRINT" ANORDNUNG AUFZUBAUEN." 1570 PRINT"ES DARF ABER DABEI IMMERNUR EINE" 1580 PRINT" KLEINERE SCHEIBE AUF EINE GROESSERE" 1590 PRINT" SCHEIBE GESETZT WERDEN." 1600 PRINT"MIT SO WENIG SCHRITTEN WIE MOEGLICH." 1610 PRINT"" 1620 GOSUB1640 1630 RETURN 1640 PRINT" BITTE AUF DIE LEERTASTE DRUECKEN. 1650 [129]I[178]1[164]250:[130] 1660 [153]" BITTE AUF DIE LEERTASTE DRUECKEN. 1670 FORI=1TO250:NEXT 1680 GETA$:IFA$=" "THENRETURN 1690 GOTO1640